home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 007 / cstrings.arc / STRTRANS.C < prev    next >
Text File  |  1985-08-06  |  2KB  |  96 lines

  1. /*
  2.     CSTRINGS.LBR VERSION 1.0
  3.     Spark Software, Inc.
  4.  
  5.         If you find this software of use, it is requested that you send
  6.         a donation ($10.00 suggested) to:
  7.  
  8.             Spark Software, Inc.
  9.             24 Royal Crest Dr., #5
  10.             Nashua, NH  03060
  11.  
  12.         Upon receiving your donation, your name will be added to the 
  13.         List of Registered Users, and future updates can be obtained
  14.         from the SPARKIE RBBS at (603) 888-8179.
  15.  
  16.         If you include an extra $10.00 with your donation, the newest
  17.         version of CSTRINGS.LBR will be mailed to you.
  18.  
  19.         Call SPARKIE RBBS at the number above for other Spark Software
  20.         products!!!
  21. */
  22.  
  23. /*
  24.  *    char *
  25.  *    strtrans (source, table)
  26.  *    char *source, *table;
  27.  *
  28.  *    This routine translates all of the elements of source according
  29.  *    to the 256 byte translation table pointed to by table.    The
  30.  *    contents of table are the codes that all of the 256 ASCII codes
  31.  *    should be translated into.
  32.  */
  33.  
  34. char *strtrans (source, table)
  35. register char *source, *table;
  36. {
  37.     char *start_pointer;
  38.  
  39.                     /* Save the original source pointer
  40.                        so that it can be returned */
  41.     start_pointer = source;
  42.  
  43.                     /* Step through the source string */
  44.     do {
  45.  
  46.                     /* Do the translation */
  47.         *source = table[*source];
  48.  
  49.     } while (*++source);
  50.  
  51.                     /* Return the pointer to the result */
  52.     return (start_pointer);
  53.  
  54. } /* strtrans */
  55.  
  56. /*
  57.  *    char *
  58.  *    strntrans (source, table, length)
  59.  *    char *source, *table;
  60.  *    int length;
  61.  *
  62.  *    This routine translates all of the elements of source according
  63.  *    to the 256 byte translation table pointed to by table.    The
  64.  *    contents of table are the codes that all of the 256 ASCII codes
  65.  *    should be translated into.  For this routine, at most length
  66.  *    bytes will be translated.
  67.  */
  68.  
  69. char *strntrans (source, table, length)
  70. register char *source, *table;
  71. register int length;
  72. {
  73.     char *start_pointer;
  74.  
  75.                     /* Save the original source pointer
  76.                        so that it can be returned */
  77.     start_pointer = source;
  78.  
  79.                     /* Step through the source string
  80.                        doing at most length translations */
  81.     while (0 < length--) {
  82.  
  83.                     /* Do the translation */
  84.         *source = table[*source];
  85.  
  86.                     /* If we reach the end of source,
  87.                        then return */
  88.                 if (*++source== '\0')
  89.             break;
  90.     }
  91.  
  92.                     /* Return the pointer to the result */
  93.     return (start_pointer);
  94.  
  95. } /* strntrans */
  96.